home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 081 / sirius50.arc / SIR050D.ARC / SIR_050.DOC < prev    next >
Text File  |  1987-07-14  |  32KB  |  739 lines

  1.  
  2.  
  3.                                                                     7/13/87
  4.  
  5.                      ################################
  6.                      #                              #
  7.                      #  What's new in Sirius v0.50  #
  8.                      #                              #
  9.                      ################################
  10.  
  11.  
  12.                   I. Logical expressions
  13.                  II. Message groups
  14.                 III. Scripts
  15.                  IV. Outside now: Using YOUR text editor
  16.                   V. Validation/repair
  17.                  VI. Disk management
  18.                 VII. Memory management
  19.                VIII. Keyboard interrupts
  20.                  IX. Miscellany
  21.                   X. Bug zaps
  22.                  XI. Distribution
  23.                 XII. Credits
  24.                XIII. Caveat
  25.  
  26.  
  27.    #######
  28.    #  I. #  Logical expressions
  29.    #######
  30.  
  31.    Boolean and string functions are  now available, and there are  some new
  32.    integer  functions  as  well.   All  of  these  functions  are  not only
  33.    available  for  use  with  IF  tests  and  WHILE  loops, but now also in
  34.    defining logical message groups (see section II below).
  35.  
  36.    Operators
  37.    ~~~~~~~~~
  38.    The  special  characters  (<,  <=,  ...)  previously  used  to represent
  39.    expression operators have been replaced by two- or three-letter codes:
  40.  
  41.         NOT : logical NOT
  42.  
  43.         AND : logical AND            \  ANDs and ORs may not be mixed
  44.         OR  : logical inclusive OR   /      in the same expression
  45.  
  46.         EQ, NE : EQuals,          is Not Equal to
  47.         LT, LE : is Less Than,    is Less than or Equal to
  48.         GT, GE : is Greater Than, is Greater than or Equal to
  49.  
  50.    Four operators have been added to facilitate string operations:
  51.  
  52.         IN, NI : is contained IN, is Not contained In
  53.         CO, NC : COntains,        does Not Contain
  54.  
  55.    Functions
  56.    ~~~~~~~~~
  57.    Sirius functions have Boolean (TRUE/FALSE), integer, or string values:
  58.  
  59.         Boolean functions
  60.         ~~~~~~~~~~~~~~~~~
  61.         Msg flags:  @Private        @Xpress        @Received     @Sent
  62.                     @FileAttach     @InTransit     @Orphan       @KillSent
  63.                     @Local          @Hold                        @FileReq
  64.                     @ReceiptReq                    @AuditReq     @UpdateReq
  65.  
  66.         Other:      @FromYou   message is From or To anything matching
  67.                     @ToYou    / your main-menu "You" string(s)
  68.  
  69.                     @NoBody   -- message file size <= 191
  70.                     @ReadOnly -- message file cannot be altered or
  71.                                  (re)moved
  72.  
  73.         Integer functions
  74.         ~~~~~~~~~~~~~~~~~
  75.                     @DaysHere -- number of days msg has been on this system
  76.                                  (as recorded in header bytes 180-183)
  77.                     @DaysOld  -- number of days since msg was authored
  78.                                  (as recorded in header bytes 176-179)
  79.  
  80.                     @FileSize -- number of bytes in msg file
  81.  
  82.                     @HighMsg# \
  83.                     @LowMsg#   \
  84.                     @Msg#       > (in current msg area)
  85.                     @MsgCount  /
  86.                     @Zenith   /
  87.  
  88.                     @NetFrom     @NetTo     @NodeFrom     @NodeTo
  89.  
  90.  
  91.         String functions (case-INsensitive)
  92.         ~~~~~~~~~~~~~~~~
  93.                     @From     =  msg file bytes    1- 35
  94.                     @To       =   "    "    "     37- 71
  95.                     @Subject  =   "    "    "     73-143
  96.                     @Header   =   "    "    "      1-190
  97.                     @Body     =   "    "    "    191+
  98.                     @Msg      =  the entire msg
  99.  
  100.                     @Keyin   --  whatever was last keyed in response to
  101.                                  a Sirius "In" command (initially null)
  102.  
  103.    Examples
  104.    ~~~~~~~~
  105.         @DaysHere GT 14 AND @InTransit
  106.         @From EQ 'Robot' AND @FileAttach
  107.         @From NE 'Someone I prefer to ignore'
  108.         @Local AND NOT @Sent
  109.         @Msg CO 'YooHoo' OR @Msg CO '2U2'
  110.         @Msg NC 'FLAME ON'
  111.         @MsgCount GT 200
  112.         @NetTo EQ 150 AND @NodeTo LE 1
  113.         @ReceiptReq AND NOT @Local AND NOT @InTransit
  114.         @ToYou AND NOT @Received
  115.         @ToYou OR @FromYou
  116.  
  117.    Note also that  because the set  of relational operators  is closed with
  118.    respect  to  negation,  subexpression  parenthesization is not required.
  119.    Got that?
  120.  
  121.    Performance issues
  122.    ~~~~~~~~~~~~~~~~~~
  123.    In expressions, use the least disk-intensive functions first.
  124.  
  125.    For  example,  several  functions  require  no  disk activity at all and
  126.    are best placed first in Sirius expressions:
  127.  
  128.         Boolean functions @NoBody and @ReadOnly,
  129.         integer functions @FileSize, @HighMsg#, @LowMsg#, @Msg#, @MsgCount,
  130.                           and @Zenith, and
  131.         string function   @Keyin
  132.  
  133.    Similarly  but  at  the  other  end  of  the  spectrum, if your compound
  134.    expression contains string searches of the message body (functions @Body
  135.    or @Msg), put such subexpressions last.
  136.  
  137.    Run the script SLOWFAST.SIR to see these principles in action.
  138.  
  139.    While We're At It
  140.    ~~~~~~~~~~~~~~~~~
  141.    By using these functions within If's and While's, you can  automatically
  142.    identify messages from whomever or whatever you choose,  and do whatever
  143.    with them.  Thus programs like  KILLRDOG become just one way  of running
  144.    Sirius.
  145.  
  146.         (Zenith
  147.          ! (While (@Msg# LE @HighMsg# AND 'you-name-it' IN @Subject))
  148.             Copy (Flat file ('UNAMEIT.SAV'))
  149.             Next
  150.             ! (End))
  151.  
  152.    The above script will copy all messages not yet read on a given  subject
  153.    in the current message area to ASCII text file UNAMEIT.SAV.
  154.  
  155.         (Zenith
  156.          ! (While (@Msg# LE @HighMsg# AND @To CO 'Klahn'))
  157.             Copy (Printer 'n')
  158.             Next
  159.             ! (End))
  160.  
  161.    This script prints  all new messages  in the current  area which contain
  162.    'Klahn' anywhere in the "To:" field, without page ejects.
  163.  
  164.  
  165.    ########
  166.    #  II. #  Message groups
  167.    ########
  168.  
  169.    The  Group  subsystem  has  been  generalized  to use all of the logical
  170.    expression  functionality  discussed  above.   The  old   case-sensitive
  171.    message flag toggles are history.
  172.  
  173.    If you're  familiar with  the "SET  FILTER TO"  command in Ashton-Tate's
  174.    dBASE III, then you  are also on familiar  ground here.  With a  logical
  175.    group definition active, your message  base will behave PRIMARILY as  if
  176.    only contains those messages  which satisfy the active group definition.
  177.    (But see "Absolute and relative positioning with groups active" below.)
  178.  
  179.    Defining a logical group
  180.    ~~~~~~~~~~~~~~~~~~~~~~~~
  181.    Select "Group" from  the main menu,  then "Define" from  the group menu,
  182.    and select a  letter from A  to Z as  the name of  the logical group you
  183.    want to define, and you'll  be into the general expression  parser.
  184.  
  185.    To delete a previous definition,  say for group "D", then  simply select
  186.    "Group Define  D" and  hit enter,  and Sirius  will tell  you that it is
  187.    "Discarding group D definition ...".
  188.  
  189.    The group you define automatically becomes the active group.  If you are
  190.    defining a group before you are ready to use it, then press "GU" to  Use
  191.    a different Group; use a group not yet explicitly defined if you want to
  192.    disable all "filtering".
  193.  
  194.    You'll probably want to have a printout of the full Sirius function list
  195.    handy as you are learning  to use logical expressions effectively.   The
  196.    listing in section I above is duplicated in file SIREXPR.HLP.
  197.  
  198.    Member memory
  199.    ~~~~~~~~~~~~~
  200.    When scanning messages, Sirius  "remembers" which messages do  and don't
  201.    belong to the current group, and  "keeps handy" as many of those  as the
  202.    "header buffer" memory you've allocated will allow.
  203.  
  204.    If you Use a different group and subsequently Use the former one  again,
  205.    Sirius will still remember the previously scanned messages which  belong
  206.    to it IF they have NOT  been tested for membership in the  more recently
  207.    used group.
  208.  
  209.    Thus if you use Sirius groups often (you will), you'll want to  allocate
  210.    as many "header buffers" in  SIRIUS.CFG as your system can  handle while
  211.    still avoiding the "Sirius has  almost run out of memory"  message.  See
  212.    "Memory Management" section VII below, and have fun compromising.
  213.  
  214.    What's happening?
  215.    ~~~~~~~~~~~~~~~~~
  216.    You will probably have many  occasions to define groups which  have few,
  217.    if any, members in your message  base.  Sirius lets you know it's  doing
  218.    something during  message searches  (via Next,  Prev, Group  Headers, or
  219.    Group List) by displaying the current message NUMBER at the beginning of
  220.    the current screen  line whenever a  message is examined  which does NOT
  221.    belong to the current group.  Thus you always know "where Sirius is"  in
  222.    the message base, and "how hard it's working".
  223.  
  224.    Conversely, if Sirius already knows that a given message is NOT a member
  225.    of the current group, its number will NOT be displayed.
  226.  
  227.    Zeroing in
  228.    ~~~~~~~~~~
  229.    After defining or  selecting a logical  group, consider getting  a Group
  230.    Headers listing first, and THEN  viewing messages one by one  using your
  231.    ENTER key.  If you've defined  enough header buffers to hold  the entire
  232.    group, you'll like this approach.
  233.  
  234.    Absolute and relative positioning with groups active
  235.    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  236.    "Next" and "Prev"  are the only  RELATIVE positioning commands;  all the
  237.    others (Back,  High, Low,  Zenith, +,  -, #)  are ABSOLUTE.   "Next" and
  238.    "Prev" will always position you at  the next or previous message IN  the
  239.    current group; the ABSOLUTE message positioning commands disregard group
  240.    definitions.
  241.  
  242.    Be particularly careful of  this distinction when writing  scripts which
  243.    use group definitions.  As an example, "0" then "Next" is the proper way
  244.    to position to the  lowest message in the  current area which is  also a
  245.    member of  the current  group; using  "Low" in  this context  will cause
  246.    problems  for  you.   There  is  currently  no  RELATIVE "Low" or "High"
  247.    command.
  248.  
  249.    Sirius message positioning commands have been structured in this  manner
  250.    because it is important for you to be able to work with messages NOT  in
  251.    the current group.   For example, when  entering replies to  messages in
  252.    the group "@ToYou", you should be able to re-examine and possibly doctor
  253.    your reply after having saved it.
  254.  
  255.    Group definition examples
  256.    ~~~~~~~~~~~~~~~~~~~~~~~~~
  257.  
  258.    1)  @Msg CO 'Telebit' OR @Msg CO 'blazer' OR @Msg CO 'half duplex'
  259.  
  260.        Scan the  COMM conference  for news  about just  one modem.  Perhaps
  261.        you'll also  want to run a  quick While  loop to  copy all  matching
  262.        messages to flat file TELEBIT.NWS.
  263.  
  264.    2)  @NoBody AND @FileAttach AND NOT @Local
  265.  
  266.        Weed out all those bodiless file-attach messages.
  267.  
  268.    3)  @Private AND @Received AND NOT @ToYou
  269.  
  270.        You may want to run a quick While loop using the Kill command to get
  271.        rid of all these in a hurry.   Or you may want to use Group  Headers
  272.        to take a quick look at them first.
  273.  
  274.    4)  @ReadOnly
  275.  
  276.        Suppose  you  are  running  SEAdog  4.00  in  your  other  DoubleDOS
  277.        partition, and you  want to see  the exact messages  which have been
  278.        packetized for mailing.   Use this simple  group definition in  your
  279.        netmail area  and exercise  the Group  Headers command  for a  quick
  280.        summary.
  281.  
  282.    5)  @Body CO 'FLAME ON'
  283.  
  284.        So you're extremely argumentative, but you don't have access to  Ken
  285.        Shackelford's FLAMES echo?   Use this group  definition to pick  out
  286.        the  "hottest  topics"  from  everything  you can reach.  Just start
  287.        tapping your ENTER key and SKIP OVER all that other trash without  a
  288.        look.  You can still  change your mind and  go back and read  it all
  289.        later.
  290.  
  291.    6)  @Msg NC 'likes EVERYTHING!"
  292.  
  293.        Clearly no discrimination at all.  Use this with the Move command to
  294.        pull  all  matching  messages  into  another  echo.  (That's a JOKE,
  295.        folks!)
  296.  
  297.    One more example
  298.    ~~~~~~~~~~~~~~~~
  299.    Try using a group to modify  script PRINTNEW.SIR so that it prints  only
  300.    the overnight mail you're SURE you want to read over breakfast the  next
  301.    morning.
  302.  
  303.    Miscellaneous notes
  304.    ~~~~~~~~~~~~~~~~~~~
  305.  * "Group Headers" and "Group List" should be familiar to you; they are the
  306.    former "View Headers" and "View List", respectively.  These two commands
  307.    were repositioned because they really are GROUP-related ACTIVE commands,
  308.    whereas all VIEW commands are intended to be SETTINGS only.
  309.  
  310.  * Consider putting  your favorite  group definitions  into startup  script
  311.    file SIRIUS.SIR to avoid rekeying.
  312.  
  313.  
  314.    #########
  315.    #  III. #  Scripts
  316.    #########
  317.  
  318.    Call your own plays
  319.    ~~~~~~~~~~~~~~~~~~~
  320.    The Play command now allows  Sirius scripts to invoke one  another, thus
  321.    making more modular Sirius  "programming" possible.  As an  example, see
  322.    enclosed   script   INTRO.SIR,   which   calls   other   Sirius  scripts
  323.    ("SUBscripts"?) to perform various  functions designed to introduce  the
  324.    new user to the Sirius environment.
  325.  
  326.    A whole new look
  327.    ~~~~~~~~~~~~~~~~
  328.    The In  and Out  commands, and  the new  Wait command,  now allow you to
  329.    interact with the user via menus and prompts that YOU create.
  330.  
  331.    An example of the In command's new syntax is
  332.  
  333.         In ('Press Q to quit, or any other key to continue ...'  1)
  334.  
  335.    Here   the  string   "Press Q to quit, or any other key to continue ..."
  336.    will be displayed on a new line and the cursor will be positioned at the
  337.    end  of  this  prompt  waiting  for  a  MAXIMUM  of one input keystroke.
  338.    Likewise,
  339.  
  340.         In ('Type the name of the command you want help with:' 12)
  341.  
  342.    will accept input keystrokes until either ENTER is pressed or the  input
  343.    string is twelve characters long, whichever occurs first.
  344.  
  345.    The most recent user input in response to an In (...)  command is stored
  346.    in  the  string  function  @Keyin,  which  may  be  used  anywhere other
  347.    string functions are allowed.  @Keyin is equated to the null string ('')
  348.    at the start of each Sirius session.
  349.  
  350.    The Out command, when used without text strings,  i.e., as  "Out ()"  in
  351.    script form or as  "O"  then ENTER  from the keyboard, will simply clear
  352.    the screen, IF screen clearing has been enabled in SIRIUS.CFG.
  353.  
  354.    The  new  Wait  commands  takes  two  forms.   "Wait  (Any key)" or "WA"
  355.    displays "Press any key to  continue ..." and suspends Sirius  execution
  356.    until  that request  is  satisfied.   "Wait (5)"  or  "W5"  will suspend
  357.    Sirius execution  for five  seconds, or  until the  ESC key  is pressed,
  358.    whichever occurs first.
  359.  
  360.    Taken together, these three commands allow the Sirius sysop to give  his
  361.    or her message base  a whole new look.   Future Sirius tie-ins to  "user
  362.    base" and  "last user"  files should  bring this  facility into its own.
  363.    See script INTRO.SIR for a good example of how to build a menu script in
  364.    Sirius.
  365.  
  366.    One note  of caution:  once invoked,  all Sirius  scripts remain  memory
  367.    resident for  the duration  of the  Sirius session  (this will change in
  368.    future versions), so beware of  going overboard with this facility  when
  369.    memory is limited.
  370.  
  371.    Fast forward
  372.    ~~~~~~~~~~~~
  373.    Script playback  has been  enhanced with  remote users  in mind.  "Fast"
  374.    playback  mode  eliminates  a  LOT  of  the  less important console I/O.
  375.    Scripts invoked  from the  DOS command  line automatically  run in  fast
  376.    mode.
  377.  
  378.    Try out one or more of the distributed scripts in both "fast" and "slow"
  379.    modes to see the  sometimes dramatic difference in  performance, locally
  380.    as well as remotely.
  381.  
  382.    -- More?
  383.    ~~~~~~~~
  384.    If you don't want to hit "n" in response to the above prompt, then now's
  385.    the time  to branch  off from  this DOC file to  SCRIPTS.DOC (in archive
  386.    SIR050S.ARC) for a quick overview of  all the scripts we've given you to
  387.    play and learn from.  ("Tag" this location first so you can readily come
  388.    "Back" to it ...)
  389.  
  390.    Keeping things going
  391.    ~~~~~~~~~~~~~~~~~~~~
  392.    Sirius scripts which are to run unattended need a few "extras":
  393.  
  394.  * View (Continuous)
  395.  
  396.    All "More <Y,n>?"  prompts are eliminated,  ensuring that an  unattended
  397.    script will not pause, awaiting  input from the console (unless  you ask
  398.    for it with the In command).
  399.  
  400.  * Quit (If error? ('Y'))
  401.  
  402.    Use this command to ensure that error conditions will cause a clean exit
  403.    from the script.
  404.  
  405.  * Group (Define ('A'))
  406.  
  407.    Defining a group  with no expression  deletes the group  definition.  As
  408.    long as this  "null" definition is  active, ALL messages  in the current
  409.    message area are  considered to be  members of the  current group.  Call
  410.    this the  "modular" approach.  The next  time you  change startup script
  411.    SIRIUS.SIR just before bedtime, you are less likely to find your  system
  412.    with a hangover when you awaken.
  413.  
  414.  
  415.    ########
  416.    #  IV. #  Outside now: Using YOUR text editor
  417.    ########
  418.  
  419.    In the Sirius 0.50 SIRIUS.CFG file there is a "Jump directory" parameter
  420.    which allows you to specify any specific subdirectory to Jump to, either
  421.    from the  main menu,  or via  Doctor Body  Jump.  If  not specified, the
  422.    default is the current directory.  Once there, you can do what you like.
  423.    Sirius will  nicely take  you back  to your  current directory  (or even
  424.    drive) when you EXIT back to Sirius.
  425.  
  426.    There is also a line called "Outside editor" which allows you to specify
  427.    the editor you want  to use with the  above commands.  Note that  Sirius
  428.    assumes it can invoke  the editor by using  whatever command you put  on
  429.    that  config  line  and  appending  the  drive:path\SIRIUS.TXT.  If your
  430.    editor won't work that way, this won't work.  (You may be surprised,  it
  431.    may work even if undocumented.)  If you don't specify an editor,  Sirius
  432.    won't let you go outside.
  433.  
  434.    * Outside soft returns ASIS NONE HARD
  435.  
  436.    Your editor may  or may not  take well to  the way FidoNet  messages are
  437.    normally formatted.  Fidonet messages have SOFT returns in them, so that
  438.    they can  be rewrapped  if need  be.  While  Personal Editor likes this,
  439.    most don't.  If yours does, use ASIS on this config line.
  440.  
  441.    If your editor likes  to do its own  formatting period, and can  survive
  442.    lines as long as paragraphs (may  be thousands of chars) then use  NONE.
  443.    An example of this kind of editor would be XyWrite.
  444.  
  445.    Almost ANY editor will do well with HARD, which converts soft returns to
  446.    hard, but then FidoNet boards (OPUS and SEAdog too) will not be able  to
  447.    rewrap the results.   Note, however, the  Sirius Body Doctor  provides a
  448.    method for rewrapping message text.  Thus, if you must use HARD  returns
  449.    with your outside  editor (PC-Write is  an example), then  when you exit
  450.    the editor and  return to Sirius,  you may subsequently  rewrap the text
  451.    using the appropriate body doctor command and transform the hard returns
  452.    back to soft returns.
  453.  
  454.    Doctor Body Outside creates the file SIRIUS.TXT in the Sirius directory.
  455.    SIRIUS.TXT contains  the body  of the  current message.   The SIRIUS.TXT
  456.    file is deleted upon return to Sirius.
  457.  
  458.    As always, both of these new commands can be scripted, so that all sorts
  459.    of  textual  manipulations  can  be  automated  with  the proper editor.
  460.    Consider these last as "words to the wise."
  461.  
  462.  
  463.    #######
  464.    #  V. #  Validation/repair
  465.    #######
  466.  
  467.    Sirius will attempt to repair messages that it finds flawed in some  way
  468.    (as is not  unusual in EchoMail  conferences).  The original  message is
  469.    renamed for later inspection, and the repaired message is marked with  a
  470.    line at  the top  of the  message body  indicating what  portions of the
  471.    message Sirius  found to  be improperly  constructed.  This  errata line
  472.    also  indicates  the  name  of  the  original  message  file, the system
  473.    "noticing" the error(s), and the system, if any, from which the  message
  474.    was received.  For example:
  475.  
  476.         * Err: Subject (file 02-Jul13.1 on 150/1, from 107/312)
  477.  
  478.    The naming convention for bad  messages has been changed from  #.BAD (in
  479.    Sirius version0.47) to AA-MmmDD.#, where
  480.  
  481.         AA  is the area number, right-justified and zero-filled,
  482.         Mmm is the alpha month,
  483.         DD  is the day of the month, and
  484.         #   is a counting number.
  485.  
  486.    Thus the first bad message encountered on July 13th, in the Sirius  echo
  487.    (and it would be a first for sure ... apart from my local testing) would
  488.    be renamed to 02-Jul13.1 here on 150/1.
  489.  
  490.    What this accomplishes: now all bad messages have unique names, so  that
  491.    they  can  be  collected  into  a  single subdirectory if you so desire.
  492.    These COULD be made file-requestable,  or ... a clever script  generated
  493.    via a DOS batch file COULD automatically file-attach offending  messages
  494.    back to their source, as Sirius 0.47 has allowed you to do more directly
  495.    (and we all know how well THAT was received!).
  496.  
  497.    Time out of mind
  498.    ~~~~~~~~~~~~~~~~
  499.    Through the  use of  "floating match  logic", Sirius  is always  able to
  500.    produce a valid date, time, AND day  of week, no matter how the date  is
  501.    stored  inside  the  message  header.   For  example,  if  there  is  no
  502.    day-of-the-month, Sirius will still find and use the month itself.
  503.  
  504.    Sirius also (1) understands, (2)  generates if not already present,  and
  505.    (3) validates if already  present the internal message  arrival/creation
  506.    dates generated by Opus (see the description for the @DaysHere  function
  507.    above).
  508.  
  509.    If you  are not  running Opus  but would  still like  to delete messages
  510.    based on how long they've been  on YOUR system, then (1) a  quick "Group
  511.    Headers" pass over newly  received messages is all  you need to fix  the
  512.    arrival dates, and (2) a while loop using the @DaysHere function will do
  513.    the rest.  Exercise left to the reader.
  514.  
  515.    (And YES, fellow techies, messages HAVE come through here with FF hex in
  516.    byte twenty of the traditional date/time field AND with garbage in bytes
  517.    176-183!)
  518.  
  519.  
  520.    ########
  521.    #  VI. #  Disk management
  522.    ########
  523.  
  524.  * "While" loops are  FASTER now, by  quite a bit!   More specifically, the
  525.    greatest  relative  improvements  will  occur  in scripts which write or
  526.    modify  disk  files.   For  example,  on  my  system, SIRECHO.SIR (which
  527.    archives the SIRIUS  conference, a la  Wes Cowley's Pixie)  is now about
  528.    five times faster than with Sirius version 0.47.
  529.  
  530.  * When you  doctor a  message, the  changes are  now permanent.  The *.BAK
  531.    files generated  by earlier  versions of  Sirius are  no longer created.
  532.    (Deafening roar of applause.)
  533.  
  534.  * Sirius now has "real-time" message overwrite protection: copying/moving/
  535.    entering/replying will NEVER overwrite existing messages, such as  those
  536.    generated "in the other DoubleDOS partition".
  537.  
  538.    High-end messages created AFTER your Sirius session began CAN be "found"
  539.    without quitting Sirius and reloading.  Exercise left to the reader.
  540.  
  541.  
  542.    #########
  543.    #  VII. #  Memory management
  544.    #########
  545.  
  546.    Out-of-memory  conditions  are  MUCH  less  likely  to  occur  in  0.50.
  547.    Nevertheless, Sirius now warns you when it is ALMOST out of memory.
  548.  
  549.    Almost 5K more memory is required  on SOME systems at startup than  with
  550.    version 0.47, but MUCH LESS memory is consumed AFTER startup.
  551.  
  552.    Sirius now  uses CIRCULAR  HEADER BUFFER  logic.  The  number of  header
  553.    buffers to allocate is  specified in configuration file  SIRIUS.CFG.  As
  554.    new message headers are loaded, older headers are overwritten; there are
  555.    never more message headers than the maximum configured in memory at  any
  556.    given time.
  557.  
  558.    Rule  of  thumb:  The  larger  you  can  make  "Headers  Buffered"   (in
  559.    SIRIUS.CFG)  without  running  out  of  memory,  either within Sirius or
  560.    outside of it, the better.
  561.  
  562.    Sirius wants 180 bytes for each buffer, of which there can be as few  as
  563.    4  or  as  many  as  255.   If  "headers  buffered"  is not specified in
  564.    SIRIUS.CFG, 25 buffers are allocated.
  565.  
  566.    All header  buffers are  allocated at  STARTUP.  Thus  if you are having
  567.    trouble bringing Sirius up at all, or if you are "running out of memory"
  568.    more  often  than  you'd  like,  consider  reducing  "headers buffered".
  569.    Conversely,  if  you  have  yet  to  run  out  of memory during a Sirius
  570.    session, and you are happy with the amount of memory available when  you
  571.    jump  to  DOS,  then  try  increasing  "headers buffered" to gain speed,
  572.    ESPECIALLY with  logical group  operations (as  explained in  section II
  573.    above).  The more buffers you  have, the faster Sirius is  at RE-viewing
  574.    messages.
  575.  
  576.  
  577.    ##########
  578.    #  VIII. #  Keyboard interrupts
  579.    ##########
  580.  
  581.    Sirius gives you a number of ways to interrupt operations in progress:
  582.  
  583.         Key   Effects ...
  584.         ~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  585.  
  586.        SPACE  * Skips remainder  of current  message, both  its display and
  587.                 its possible output to a flat file.
  588.               * Terminates Group Headers, Group List, and Area lists.
  589.  
  590.         CR    * Skips remainder  of current  message as  SPACE  does, A-N-D
  591.                 moves to the adjacent  message in the current  direction of
  592.                 travel AND in the current group.
  593.               * Terminates Group Headers, Group List, and Area lists.
  594.  
  595.         ESC   * Terminates almost everything.
  596.               * Does NOT terminate display/output of the current message.
  597.                 Thus scripts  such as  SIRECHO.LST can  be interrupted  and
  598.                 resumed without any adverse effect on flat file output.
  599.  
  600.          C    * Continuous viewing             \  as of the next
  601.          S    * Viewing a screenful at a time  /  expression evaluation
  602.  
  603.          T    * Force next expression evaluation to be TRUE
  604.          F    * Force next expression evaluation to be FALSE
  605.  
  606.          W    * Wait while depressed, resume one second after release
  607.  
  608.    Note that  not all  Sirius activity  is interruptable.   If Sirius  were
  609.    ALWAYS  looking  for  keystrokes,  it  would  run  significantly slower.
  610.    Experiment to see what works best for you.
  611.  
  612.  
  613.    ########
  614.    #  IX. #  Miscellany
  615.    ########
  616.  
  617.    Message creation/display
  618.    ~~~~~~~~~~~~~~~~~~~~~~~~
  619.  * Origin lines are generated if  specified in SIRIUS.CFG, OR in  AREAS.BBS
  620.    when Sirius is building SIRIUS.ART.
  621.  * Both origin lines  and VISIBLE Sirius  tear lines are  generated only in
  622.    areas having AKA's (Area Known as); this INCLUDES the netmail area.
  623.  
  624.  * All reply quoting is now indented at least one space, so that subsequent
  625.    editing with SEAdog's MAIL.EXE will not destroy the prefixing alignment.
  626.    Thus, for example, typing  just ">" yields a  prefix of " > "  (the only
  627.    prefix SEAdog understands).
  628.  
  629.  * "!" has been disallowed as  a reply/quote prefix terminator, so  that an
  630.    interjection  in  a  one-line  paragraph  will  not  be interpreted as a
  631.    prefix.
  632.  
  633.  * A message's net/node  TO or FROM  is displayed whenever  it differs from
  634.    your primary net/node identity.
  635.  * A reply's net/node  TO is ALWAYS  set equal to  the replied-to message's
  636.    net/node FROM; this and the previous feature make it much easier to copy
  637.    and move messages into and out of "netmail" areas.
  638.  
  639.    Message movement
  640.    ~~~~~~~~~~~~~~~~
  641.  * Both  the  Move  and  Copy  commands  now have a "Stamped" option.  This
  642.    records the name, or number if  no name exists, of the area  the message
  643.    came from, along with the the  current date and time, as the  first line
  644.    of the message body.
  645.  
  646.    Inter-system detail
  647.    ~~~~~~~~~~~~~~~~~~~
  648.  * You  must  specify  your  net/node  identity  in  SIRIUS.CFG; this is of
  649.    particular importance now that Opus 1.00 no longer uses a MAIL.SYS file.
  650.  
  651.  * The Doctor (Netmail (...)) command set now allows you to alter the LOCAL
  652.    flag in addition to all the others.
  653.  
  654.    Tables
  655.    ~~~~~~
  656.  * Sirius now supports one hundred message areas.
  657.  
  658.  * On the  area table  and defined  group displays,  an asterisk  marks the
  659.    active (current) entry.
  660.  
  661.    Appearances
  662.    ~~~~~~~~~~~
  663.  * "Not yet implemented" features and messages have been removed.  What you
  664.    now see is what you get.
  665.  
  666.  
  667.    #######
  668.    #  X. #  Bug zaps
  669.    #######
  670.  
  671.  * Sirius  area  table  SIRIUS.ART  is  built  (if  missing)  using   A-L-L
  672.    SYSTEM??.BBS files  in the  startup directory  WHETHER OR  NOT it  finds
  673.    a match on OPUS*.* there.
  674.  
  675.  * SIRIUS.ART once  again picks  up DIR.BBS  area descriptions  if present.
  676.    This was broken in 0.47 only.
  677.  
  678.  * Sirius scripts recorded  in lower case  would not play  back properly in
  679.    0.47.  Fixed with  a vengeance.  Interpretatio  of THAT comment  left to
  680.    the reader.
  681.  
  682.  * When recording While loops to script files, all iterations but the first
  683.    are at last suppressed.
  684.  
  685.  
  686.    ########
  687.    #  XI. #  Distribution
  688.    ########
  689.  
  690.    Sirius 0.50 should only be distributed with this packaging:
  691.  
  692.         SIR050D.ARC   59KB -- Documentation    (required)
  693.         SIR050E.ARC  145KB -- Executables          "
  694.         SIR050S.ARC   17KB -- Scripts              "
  695.         SIR050M.ARC ~ 21KB -- Menu customizer  (optional)
  696.  
  697.    If you haven't read file CAREWARE.DOC, please do so now.  Basically,  if
  698.    you use Sirius, I want to know about it.
  699.  
  700.  
  701.    #########
  702.    #  XII. #  Credits
  703.    #########
  704.  
  705.    I owe the Sirius  Beta Group a debt  of gratitude.  Pat McDonald,  David
  706.    Page, and Bob Davis have contributed time, ideas, many bug reports, some
  707.    of  the  above  documentation  and  enclosed  scripts,  and HARD WORK in
  708.    general.
  709.  
  710.    Thanks,  Pat,  for  your  many  fine  ideas,  such  as the @Keyin string
  711.    function), your Opus Gazette/FidoNews  review, and your tirelessness  in
  712.    general.    Thanks,   David,   for   your   outside   editor   ideas and
  713.    documentation.  Thanks, Bob, for your commercial perspective; there  are
  714.    hardly any "not yet implemented" messages left!
  715.  
  716.    And thanks to ALL who have participated in AREA:SIRIUS or who have  sent
  717.    ANYTHING to  me here  at 150/1,  be they  bug reports,  ideas, requests,
  718.    HELLOBOB.SIR-generated registration messages, or simply questions.  They
  719.    all help.
  720.  
  721.  
  722.    ##########
  723.    #  XIII. #  Caveat
  724.    ##########
  725.  
  726.    The leading "0" in the Sirius version number tells you that
  727.  
  728.        (1) Sirius documentation is still sketchy, and
  729.        (2) major structural changes MAY be made in future versions.
  730.  
  731.    The leading "0" will become a "1" when
  732.  
  733.        (1) the documentation is truly of professional quality, and
  734.        (2) overall data structures have stabilized.
  735.  
  736.  
  737.                                      ###
  738.  
  739.